/**
 * 认证相关类型定义
 * 创建时间：2025-09-11
 * 作者：开发团队
 * 目的：定义认证模块数据类型
 */

import type { UserRole, AccountStatus } from './common'

// 用户信息接口
export interface User {
  id: number
  username: string
  name: string
  role: UserRole
  phone: string
  campus_id?: number
  campus_name?: string
  permissions: string[]
  status: AccountStatus
  last_login?: string
  created_at: string
}

// 登录请求参数
export interface LoginRequest {
  username: string
  password: string
  remember?: boolean
}

// 登录响应数据
export interface LoginResponse {
  token: string
  user: User
}

// 用户资料更新请求
export interface UpdateProfileRequest {
  name?: string
  phone?: string
}

// 修改密码请求
export interface ChangePasswordRequest {
  old_password: string
  new_password: string
  confirm_password: string
}

// JWT令牌负载
export interface JwtPayload {
  user_id: number
  username: string
  role: UserRole
  exp: number
  iat: number
}